﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Gueei.Gallery.Core.DisplayProfiles;
using Gueei.Gallery.Core.Entities;
using Gueei.Gallery.Core.Filters;
using Gueei.Gallery.Core.ViewModels;

namespace Gueei.Gallery.Core.Services
{
	public interface IImageService
	{
		Image SaveNewImage(string tags, string name, string description, string originalFileName, string mimeType, Entities.User creator, FileInfo file);

		Image SaveNewImage(string tags, string name, string description, string originalFileName, string mimeType, Entities.User creator, byte[] data);

		Image GetImage(Guid id);

		byte[] GetImageFile(Guid id);

		byte[] GetImageFile(Guid id, DisplayProfileBase profile);

		bool ImageExists(Guid id);

		Image UpdateImage(Guid id, string tags, string name, string description, User modifiedBy);

		Image ApplyFilterAndSaveImage(Guid id, ImageFilter filter);
	}
}
